﻿using System;
using System.Text;
using System.Collections.Generic;
using System.Linq;
using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace BatallaNavalgo.Tests
{
    [TestClass]
    public class TestLancha
    {
        Lancha lancha;
        public TestLancha()
        {
            int orientacion = 0;
            int[] posicion = new int[2];
            posicion[0] = 0;
            posicion[1] = 1;
            int[] direccion = new int[2];
            direccion[0] = 0;
            direccion[1] = 1;
            Tablero tablero = new Tablero();
            lancha = new Lancha(posicion, direccion,orientacion, tablero);
        }

        [TestMethod]
        public void TestLanchaDebeLanzarExcepcionSiSeLaInicializaIncorrectamente()
        {
            int orientacion = 1;
            int[] posicion = new int[2];
            posicion[0] = 0;
            posicion[1] = 9;
            int[] direccion = new int[2];
            direccion[0] = 0;
            direccion[1] = 1;
            Tablero tablero = new Tablero();
            try
            {
                lancha = new Lancha(posicion, direccion,orientacion, tablero);
                Assert.Fail("Se inicializó correctamente");
            }
            catch (NoSePudoInicializarNaveException ex)
            {
                Assert.IsTrue(ex is NoSePudoInicializarNaveException);
            }
        }
        
        [TestMethod]
        public void TestDeberiaPonerLaLanchaHorizontalmenteSiOrientacionEs0()
        {
            int orientacion = 0;
            int[] posicion = new int[2];
            posicion[0] = 0;
            posicion[1] = 0;
            int[] direccion = new int[2];
            direccion[0] = 0;
            direccion[1] = 1;
            Tablero tablero = new Tablero();

            lancha = new Lancha(posicion, direccion, orientacion, tablero);

            Assert.IsTrue(lancha.Fragmentos[1].Posicion[0] == 1);
        }

        [TestMethod]
        public void TestDeberiaPonerLaLanchaVerticalmenteSiOrientacionEs1()
        {
            int orientacion = 1;
            int[] posicion = new int[2];
            posicion[0] = 0;
            posicion[1] = 0;
            int[] direccion = new int[2];
            direccion[0] = 0;
            direccion[1] = 1;
            Tablero tablero = new Tablero();

            lancha = new Lancha(posicion, direccion, orientacion, tablero);

            Assert.IsTrue(lancha.Fragmentos[1].Posicion[1] == 1);

        }

    }
}